package kotlinusage

//内联类构造参数中有且只能有一个成员变量,最终被内联到字节码中的value.
//内联类本质为常量类
//内联类中不允许定义字段
@JvmInline
value class Person(private val name: String = "") {

    //JvmSynthetic只能修饰方法,只能在kotlin中使用.
    @JvmSynthetic
    fun getName(): String {
        return name
    }

    fun getAge(): Int {
        return 10
    }

    companion object {
        //JvmStatic关键字用于在companion object伴生对象中定义静态方法、字段
        @JvmStatic
        fun getScore() : Double {
            return 98.5
        }

        @JvmStatic
        var instance: Person? = null
            set
    }
}